2025-03-05 13:41:11,194 - INFO - Num classes: 3
2025-03-05 13:45:41,457 - INFO - Class weights: tensor([0.5190, 4.1382, 1.2028], device='cuda:0')
2025-03-05 13:45:41,462 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-05 13:45:41,462 - INFO - Using cuda device
2025-03-05 13:52:46,246 - INFO - Epoch: 0/100. Training time: 275.606
2025-03-05 13:52:46,247 - INFO - Training Metrics...
2025-03-05 13:52:46,247 - INFO - {'loss': 0.9696934620539347, 'f1': 35.43956251317833, 'acc': 37.85081640829409, 'precision': 47.59331594918902, 'recall': 51.516366228792045, 'balanced acc': 51.516366228792045}
2025-03-05 13:52:46,247 - INFO - Validation Metrics... Inference time: 149.174
2025-03-05 13:52:46,247 - INFO - {'loss': 1.0482498980775665, 'f1': 46.27134662746328, 'acc': 46.194912893955056, 'precision': 60.68358011839733, 'recall': 56.21081940457611, 'balanced acc': 56.21081940457611}
2025-03-05 13:52:46,247 - INFO - ==================================================
2025-03-05 14:27:53,901 - INFO - Epoch: 5/100. Training time: 272.817
2025-03-05 14:27:53,902 - INFO - Training Metrics...
2025-03-05 14:27:53,902 - INFO - {'loss': 0.7347684472035139, 'f1': 59.81120360907334, 'acc': 68.14727543661695, 'precision': 62.26957522780443, 'recall': 71.02397598950671, 'balanced acc': 71.02397598950671}
2025-03-05 14:27:53,902 - INFO - Validation Metrics... Inference time: 147.678
2025-03-05 14:27:53,902 - INFO - {'loss': 0.7899098735821398, 'f1': 61.43896680111971, 'acc': 65.43004068716094, 'precision': 62.67077767439785, 'recall': 65.91208762389142, 'balanced acc': 65.91208762389142}
2025-03-05 14:27:53,902 - INFO - ==================================================
2025-03-05 17:28:58,713 - INFO - Num classes: 3
2025-03-05 17:33:33,662 - INFO - Class weights: tensor([0.5190, 4.1382, 1.2028], device='cuda:0')
2025-03-05 17:33:33,666 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-05 17:33:33,666 - INFO - Using cuda device
2025-03-05 17:33:33,681 - INFO - Training parameters restored at epoch 6
2025-03-05 18:09:36,934 - INFO - Epoch: 10/100. Training time: 274.270
2025-03-05 18:09:36,938 - INFO - Training Metrics...
2025-03-05 18:09:36,938 - INFO - {'loss': 0.7243793438642453, 'f1': 61.15201469548134, 'acc': 69.50819014504842, 'precision': 62.809661154450914, 'recall': 70.18139688979892, 'balanced acc': 70.18139688979892}
2025-03-05 18:09:36,938 - INFO - Validation Metrics... Inference time: 152.106
2025-03-05 18:09:36,938 - INFO - {'loss': 0.7396138778215722, 'f1': 65.85062992789187, 'acc': 70.52120838446137, 'precision': 67.44395193126306, 'recall': 69.57106863405087, 'balanced acc': 69.57106863405087}
2025-03-05 18:09:36,938 - INFO - ==================================================
2025-03-05 18:45:17,572 - INFO - Epoch: 15/100. Training time: 277.312
2025-03-05 18:45:17,575 - INFO - Training Metrics...
2025-03-05 18:45:17,576 - INFO - {'loss': 0.6573922007511823, 'f1': 66.03620777418331, 'acc': 76.02965765633176, 'precision': 65.9817926267533, 'recall': 74.44617087841947, 'balanced acc': 74.44617087841947}
2025-03-05 18:45:17,576 - INFO - Validation Metrics... Inference time: 150.210
2025-03-05 18:45:17,576 - INFO - {'loss': 0.7181838464133347, 'f1': 65.32384542935452, 'acc': 70.30316576788944, 'precision': 66.13488561983695, 'recall': 68.17037465032607, 'balanced acc': 68.17037465032607}
2025-03-05 18:45:17,576 - INFO - ==================================================
2025-03-05 19:20:46,713 - INFO - Epoch: 20/100. Training time: 275.719
2025-03-05 19:20:46,717 - INFO - Training Metrics...
2025-03-05 19:20:46,717 - INFO - {'loss': 0.6156099973580776, 'f1': 65.72722715195692, 'acc': 75.71249202806123, 'precision': 65.94746393563953, 'recall': 75.79395532701926, 'balanced acc': 75.79395532701926}
2025-03-05 19:20:46,717 - INFO - Validation Metrics... Inference time: 151.677
2025-03-05 19:20:46,717 - INFO - {'loss': 0.6990556845182105, 'f1': 62.997131107397145, 'acc': 70.31191976394989, 'precision': 64.2447005950016, 'recall': 64.20117270151502, 'balanced acc': 64.20117270151502}
2025-03-05 19:20:46,718 - INFO - ==================================================
2025-03-05 19:56:27,123 - INFO - Epoch: 25/100. Training time: 276.530
2025-03-05 19:56:27,127 - INFO - Training Metrics...
2025-03-05 19:56:27,127 - INFO - {'loss': 0.6129137904216082, 'f1': 67.09770485044794, 'acc': 76.08179464694531, 'precision': 67.0819180498233, 'recall': 74.86736122012837, 'balanced acc': 74.86736122012837}
2025-03-05 19:56:27,127 - INFO - Validation Metrics... Inference time: 151.289
2025-03-05 19:56:27,127 - INFO - {'loss': 0.6837040449999556, 'f1': 67.47094924278403, 'acc': 72.00822724263757, 'precision': 68.06096454237934, 'recall': 71.81524910877427, 'balanced acc': 71.81524910877427}
2025-03-05 19:56:27,127 - INFO - ==================================================
2025-03-05 20:32:02,296 - INFO - Epoch: 30/100. Training time: 275.136
2025-03-05 20:32:02,299 - INFO - Training Metrics...
2025-03-05 20:32:02,300 - INFO - {'loss': 0.6616964630591564, 'f1': 64.52561561757352, 'acc': 74.89239160207352, 'precision': 64.39605651760215, 'recall': 72.08539042596338, 'balanced acc': 72.08539042596338}
2025-03-05 20:32:02,300 - INFO - Validation Metrics... Inference time: 151.868
2025-03-05 20:32:02,300 - INFO - {'loss': 0.6615567252605776, 'f1': 67.36470132985708, 'acc': 72.71308790525704, 'precision': 68.5894022480964, 'recall': 70.66920448373295, 'balanced acc': 70.66920448373295}
2025-03-05 20:32:02,300 - INFO - ==================================================
2025-03-05 21:07:22,638 - INFO - Epoch: 35/100. Training time: 271.293
2025-03-05 21:07:22,642 - INFO - Training Metrics...
2025-03-05 21:07:22,642 - INFO - {'loss': 0.5900663366684546, 'f1': 67.53667194583618, 'acc': 76.87584574094059, 'precision': 66.46174104304303, 'recall': 76.02005181389987, 'balanced acc': 76.02005181389987}
2025-03-05 21:07:22,642 - INFO - Validation Metrics... Inference time: 150.174
2025-03-05 21:07:22,642 - INFO - {'loss': 0.6611973530129541, 'f1': 67.25945238604159, 'acc': 72.16635418012142, 'precision': 66.8851183986208, 'recall': 70.66648817991343, 'balanced acc': 70.66648817991343}
2025-03-05 21:07:22,642 - INFO - ==================================================
2025-03-05 21:42:54,499 - INFO - Epoch: 40/100. Training time: 277.271
2025-03-05 21:42:54,502 - INFO - Training Metrics...
2025-03-05 21:42:54,502 - INFO - {'loss': 0.5787061208333725, 'f1': 68.14490953747114, 'acc': 78.09974275166797, 'precision': 67.84016014435174, 'recall': 76.21712658891859, 'balanced acc': 76.21712658891859}
2025-03-05 21:42:54,502 - INFO - Validation Metrics... Inference time: 149.576
2025-03-05 21:42:54,503 - INFO - {'loss': 0.6686302574375008, 'f1': 68.09016010248199, 'acc': 72.89651818005683, 'precision': 68.1108826338118, 'recall': 71.80011944819653, 'balanced acc': 71.80011944819653}
2025-03-05 21:42:54,503 - INFO - ==================================================
2025-03-05 22:18:27,800 - INFO - Epoch: 45/100. Training time: 274.179
2025-03-05 22:18:27,803 - INFO - Training Metrics...
2025-03-05 22:18:27,803 - INFO - {'loss': 0.5658524403205285, 'f1': 68.29360897435535, 'acc': 78.54021792010073, 'precision': 67.99428738624788, 'recall': 77.81397383152543, 'balanced acc': 77.81397383152543}
2025-03-05 22:18:27,803 - INFO - Validation Metrics... Inference time: 149.957
2025-03-05 22:18:27,803 - INFO - {'loss': 0.6357413794420943, 'f1': 68.26489349472294, 'acc': 73.0520718967967, 'precision': 68.30374185834303, 'recall': 71.65053986073941, 'balanced acc': 71.65053986073941}
2025-03-05 22:18:27,804 - INFO - ==================================================
2025-03-05 22:54:00,894 - INFO - Epoch: 50/100. Training time: 272.762
2025-03-05 22:54:00,898 - INFO - Training Metrics...
2025-03-05 22:54:00,898 - INFO - {'loss': 0.5884187909273001, 'f1': 66.90045609039936, 'acc': 77.3735553416078, 'precision': 67.28694458943303, 'recall': 76.57348011685315, 'balanced acc': 76.57348011685315}
2025-03-05 22:54:00,898 - INFO - Validation Metrics... Inference time: 149.756
2025-03-05 22:54:00,898 - INFO - {'loss': 0.6931222511243217, 'f1': 66.30898852737941, 'acc': 70.89144943974425, 'precision': 67.33382161970762, 'recall': 70.28907901833233, 'balanced acc': 70.28907901833233}
2025-03-05 22:54:00,898 - INFO - ==================================================
2025-03-05 23:29:54,231 - INFO - Epoch: 55/100. Training time: 294.326
2025-03-05 23:29:54,235 - INFO - Training Metrics...
2025-03-05 23:29:54,235 - INFO - {'loss': 0.5735909602580926, 'f1': 68.47602686306863, 'acc': 79.57746424892072, 'precision': 67.52405940645014, 'recall': 78.15680673437468, 'balanced acc': 78.15680673437468}
2025-03-05 23:29:54,235 - INFO - Validation Metrics... Inference time: 149.955
2025-03-05 23:29:54,235 - INFO - {'loss': 0.6612146564676792, 'f1': 68.42947540206707, 'acc': 72.88188614053217, 'precision': 68.4321686306475, 'recall': 72.07461802952349, 'balanced acc': 72.07461802952349}
2025-03-05 23:29:54,235 - INFO - ==================================================
2025-03-06 00:05:33,583 - INFO - Epoch: 60/100. Training time: 271.458
2025-03-06 00:05:33,587 - INFO - Training Metrics...
2025-03-06 00:05:33,587 - INFO - {'loss': 0.5559156903853784, 'f1': 70.80681458159697, 'acc': 80.1668766965921, 'precision': 69.72079303509776, 'recall': 78.75031963044142, 'balanced acc': 78.75031963044142}
2025-03-06 00:05:33,587 - INFO - Validation Metrics... Inference time: 147.850
2025-03-06 00:05:33,587 - INFO - {'loss': 0.6517398055595688, 'f1': 69.47320078178826, 'acc': 73.83819083408679, 'precision': 69.17713420769907, 'recall': 72.82227023663359, 'balanced acc': 72.82227023663359}
2025-03-06 00:05:33,588 - INFO - ==================================================
2025-03-06 00:41:04,907 - INFO - Epoch: 65/100. Training time: 280.284
2025-03-06 00:41:04,907 - INFO - Training Metrics...
2025-03-06 00:41:04,907 - INFO - {'loss': 0.5495916490371411, 'f1': 70.63794304028525, 'acc': 80.15442054225537, 'precision': 69.60037910131611, 'recall': 77.37559050209266, 'balanced acc': 77.37559050209266}
2025-03-06 00:41:04,907 - INFO - Validation Metrics... Inference time: 153.407
2025-03-06 00:41:04,907 - INFO - {'loss': 0.669463453413565, 'f1': 68.73196787436315, 'acc': 73.19874547920435, 'precision': 68.7191812225975, 'recall': 72.49398492449221, 'balanced acc': 72.49398492449221}
2025-03-06 00:41:04,907 - INFO - ==================================================
2025-03-06 01:17:09,187 - INFO - Epoch: 70/100. Training time: 279.780
2025-03-06 01:17:09,187 - INFO - Training Metrics...
2025-03-06 01:17:09,187 - INFO - {'loss': 0.5260401780788715, 'f1': 71.07681500684633, 'acc': 80.06803232110151, 'precision': 70.30850427519488, 'recall': 78.77451137748052, 'balanced acc': 78.77451137748052}
2025-03-06 01:17:09,187 - INFO - Validation Metrics... Inference time: 146.318
2025-03-06 01:17:09,188 - INFO - {'loss': 0.6542758790752555, 'f1': 69.26384355973099, 'acc': 73.74194733273055, 'precision': 69.4017415983707, 'recall': 72.7273302560328, 'balanced acc': 72.7273302560328}
2025-03-06 01:17:09,188 - INFO - ==================================================
2025-03-06 01:52:36,637 - INFO - Epoch: 75/100. Training time: 271.238
2025-03-06 01:52:36,641 - INFO - Training Metrics...
2025-03-06 01:52:36,641 - INFO - {'loss': 0.5219694039760492, 'f1': 72.00033703515068, 'acc': 82.29675133274466, 'precision': 72.06847671267515, 'recall': 80.08766445668819, 'balanced acc': 80.08766445668819}
2025-03-06 01:52:36,641 - INFO - Validation Metrics... Inference time: 144.852
2025-03-06 01:52:36,641 - INFO - {'loss': 0.6462756508513342, 'f1': 69.66826029299003, 'acc': 74.14150292237149, 'precision': 69.33290678918546, 'recall': 72.97547193464473, 'balanced acc': 72.97547193464473}
2025-03-06 01:52:36,641 - INFO - ==================================================
2025-03-06 02:29:54,631 - INFO - Epoch: 80/100. Training time: 278.429
2025-03-06 02:29:54,634 - INFO - Training Metrics...
2025-03-06 02:29:54,634 - INFO - {'loss': 0.5493252468414795, 'f1': 70.81257060449437, 'acc': 80.23882855425826, 'precision': 69.68338956489498, 'recall': 78.62982982759186, 'balanced acc': 78.62982982759186}
2025-03-06 02:29:54,634 - INFO - Validation Metrics... Inference time: 151.550
2025-03-06 02:29:54,634 - INFO - {'loss': 0.6239588049393666, 'f1': 70.77163340987941, 'acc': 75.45268502970809, 'precision': 70.56943656983715, 'recall': 73.23758577851694, 'balanced acc': 73.23758577851694}
2025-03-06 02:29:54,634 - INFO - ==================================================
2025-03-06 03:05:22,293 - INFO - Epoch: 85/100. Training time: 272.901
2025-03-06 03:05:22,296 - INFO - Training Metrics...
2025-03-06 03:05:22,297 - INFO - {'loss': 0.5096840950158926, 'f1': 72.29874618202, 'acc': 81.43059507456829, 'precision': 70.85141838305842, 'recall': 80.13652161033403, 'balanced acc': 80.13652161033403}
2025-03-06 03:05:22,297 - INFO - Validation Metrics... Inference time: 146.451
2025-03-06 03:05:22,297 - INFO - {'loss': 0.6521708655960953, 'f1': 69.37806490693514, 'acc': 73.82676270666495, 'precision': 69.24035589297836, 'recall': 72.96953134271605, 'balanced acc': 72.96953134271605}
2025-03-06 03:05:22,297 - INFO - ==================================================
2025-03-06 03:40:09,468 - INFO - Epoch: 90/100. Training time: 271.303
2025-03-06 03:40:09,472 - INFO - Training Metrics...
2025-03-06 03:40:09,472 - INFO - {'loss': 0.5300476596905634, 'f1': 70.68877212377164, 'acc': 80.85632164524463, 'precision': 69.90597315378432, 'recall': 79.30578424658584, 'balanced acc': 79.30578424658584}
2025-03-06 03:40:09,472 - INFO - Validation Metrics... Inference time: 145.452
2025-03-06 03:40:09,472 - INFO - {'loss': 0.6418978036204471, 'f1': 69.79659852048364, 'acc': 74.27765657291397, 'precision': 69.42063445132999, 'recall': 73.06642726261067, 'balanced acc': 73.06642726261067}
2025-03-06 03:40:09,472 - INFO - ==================================================
2025-03-06 04:15:03,801 - INFO - Epoch: 95/100. Training time: 277.308
2025-03-06 04:15:03,804 - INFO - Training Metrics...
2025-03-06 04:15:03,805 - INFO - {'loss': 0.5175232688585917, 'f1': 71.8879231642871, 'acc': 82.02224324224882, 'precision': 70.70453844968596, 'recall': 80.11367013732541, 'balanced acc': 80.11367013732541}
2025-03-06 04:15:03,805 - INFO - Validation Metrics... Inference time: 149.691
2025-03-06 04:15:03,805 - INFO - {'loss': 0.6439706962319869, 'f1': 69.75428389412592, 'acc': 74.14374818360889, 'precision': 69.59624905386292, 'recall': 73.16821875530965, 'balanced acc': 73.16821875530965}
2025-03-06 04:15:03,805 - INFO - ==================================================
2025-03-06 04:36:20,339 - INFO - Early stopping criterion met. Stopping training.
2025-03-06 04:38:52,411 - INFO - Final test metrics:
{'f1': 71.80013344938129, 'acc': 75.50586492508396, 'precision': 70.67983303789842, 'recall': 74.07526390131913, 'balanced acc': 74.07526390131913}
2025-03-20 07:13:43,496 - INFO - Num classes: 3
2025-03-20 07:13:43,625 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-20 07:13:43,625 - INFO - Using cuda device
2025-03-20 07:13:43,647 - INFO - Training parameters restored at epoch 78
2025-03-20 07:13:43,654 - INFO - Initializing final Evaluations:

2025-03-20 07:16:15,480 - INFO - Final validation metrics:
{'f1': 71.80013344938129, 'acc': 75.50586492508396, 'precision': 70.67983303789842, 'recall': 74.07526390131913, 'balanced acc': 74.07526390131913}
2025-03-20 07:17:50,839 - INFO - Final test pixel-wise classification metrics:
{'f1': 77.37294496596225, 'acc': 80.24216365615702, 'precision': 77.27191078022608, 'recall': 79.58478400620906, 'balanced acc': 79.58478400620906}
2025-04-05 02:40:37,122 - INFO - Num classes: 3
2025-04-05 02:40:37,129 - INFO - Class weights: None
2025-04-05 02:40:37,257 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-04-05 02:40:37,257 - INFO - Using cuda device
2025-04-05 02:40:37,265 - INFO - Initializing final Evaluations:

